const Mock = require('mockjs');
const ebankRandom = require('./ebankRandom');

// 自定义Mock变量
Mock.Random.extend(ebankRandom);

const createReturnData = (data, code, message) => {
  if (!data) {
    throw new Error('return data is required');
  }
  return {
    errorCode: code || '000000',
    errorMessage: message || '交易成功',
    data
  };
};

module.exports = {
  JSONParse(value) {
    try {
      return JSON.parse(value);
    } catch (e) {
      return {};
    }
  },
  createReturnData,
  /**
   * 根据总数、页码和每页条数返回当前页的记录条数
   * @param {number} total 记录总条数
   * @param {number} currentPage 当前页码
   * @param {number} pageSize 每页记录条数
   * @return {number} 当前页记录条数
   */
  getPageSize(total, currentPage, pageSize) {
    if (isNaN(Number(pageSize)) || Number(total) === 0) {
      return total;
    }
    const totalPage = Math.ceil(total / pageSize); // 页数
    const lastPageSize = total % pageSize; // 最后一页记录条数
    if (totalPage === 1) {
      return total;
    }
    return totalPage === currentPage ? lastPageSize : pageSize;
  },
  Mock
};
